const Common = (function() {
	return class {
		toPage(url, type, time) {
			console.info(url);
			if (!url) {
				this.showToast('url参数不正确')
				return;
			}

			if (!type) {
				type = 1;
			}
			if (!time) {
				time = 0;
			}
			setTimeout(function() {
				switch (type) {
					case 1:
						//【保留】当前页面，跳转到应用内的某个页面，使用uni.navigateBack可以返回到原页面。
						uni.navigateTo({
							url: url
						});
						break;
					case 2:
						//关闭【当前】页面，跳转到应用内的某个页面。
						uni.redirectTo({
							url: url
						});
						break;
					case 3:
						//关闭【所有】页面，打开到应用内的某个页面。
						uni.reLaunch({
							url: url
						});
						break;
					case 4:
						//跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面。
						uni.switchTab({
							url: url
						});
						break;
					case 5:
						//关闭当前页面，返回上一页面或多级页面
						uni.navigateTo({
							url: url
						});
						break;
					default:
						break;
				}
			}, time)
		}
		setUser(userInfo) {
			console.info("===setUser===")
			uni.setStorageSync('userId', userInfo.uuid);
			uni.setStorageSync('userInfo', JSON.stringify(userInfo));
		}
		delUser() {
			uni.removeStorageSync('userId');
			uni.removeStorageSync('userInfo');
		}
		getUser() {
			if (!uni.getStorageSync('userInfo')) {
				return null;
			}
			return JSON.parse(uni.getStorageSync('userInfo'));
		}
		setToken(token) {
			console.info("===setToken===")
			uni.setStorageSync('token', token);
		}
		delToken() {
			uni.removeStorageSync('token');
		}
		getToken() {
			let token = uni.getStorageSync('token');
			console.info("==getToken:" + token)
			return token;
		}
		localRead(key) {
			console.info("key:" + key)
			return uni.getStorageSync(key);
		}
		localSave(key, value) {
			console.info("===key===" + key + "，value:" + value)
			uni.setStorageSync(key, value);
		}
		showToast(title, type, isMask, duration) {
			let icon = "none"; //不显示
			if (type == '1') { //成功
				icon = "success"
			}
			if (type == '2') { //加载
				icon = "loading"
			}
			if (!duration) {
				duration = 1000;
			}
			if (!isMask) {
				isMask = true;
			}
			uni.showToast({
				title: title, //显示文字
				mask: isMask, //是否有背景
				icon: icon, //图标
				duration: duration //时间
			});
		}
		showLoading(title, mask, time) {
			if (!title) {
				title = '加载中';
			}
			if (mask) {
				mask = true
			} else {
				mask = false
			}

			uni.showLoading({
				title: title,
				mask: mask
			});

			if (time) {
				setTimeout(function() {
					uni.hideLoading();
				}, time);
			}
		}
		hideLoading() {
			uni.hideLoading();
		}
		dateFormat(time) {
			if (!time) {
				return "";
			}
			var date = new Date(time);
			var year = date.getFullYear();
			/* 在日期格式中，月份是从0开始的，因此要加0
			 * 使用三元表达式在小于10的前面加0，以达到格式统一  如 09:11:05
			 * */
			var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
			var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
			var hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
			var minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
			var seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
			// 拼接
			return year + "年" + month + "月" + day + "日 " + hours + ":" + minutes + ":" + seconds;
		}
		notLoginUser() {
			this.showToast('请先登录系统!');
			this.toPage('../login/login', 3, 1500)
		}
		numFilter(value) {
			if(!value){
				return;
			}
			// 截取当前数据到小数点后两位
			let realVal = parseFloat(value).toFixed(2)
			return realVal
		}
		numFilterInt(value) {
			if(!value){
				return;
			}
			// 截取当前数据到小数点后两位
			let realVal = parseFloat(value).toFixed(2)
			return Math.ceil(realVal)
		}


	}
})();


// 设置全局唯一
if (!global.$common) global.$common = new Common();

export default global.$common;
